package com.cnap.multiclouldmgmt.model.k8sModels;

import com.cnap.multiclouldmgmt.model.K8sClusterInfoModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.List;
import java.util.Map;
/**
 * 集群组件基础信息
 * @author dyq
 */
@ApiModel(value = "com.cnap.multiclouldmgmt.model.k8sModels.PodModel",description = "容器组信息")
public class PodModel extends K8sClusterInfoModel {

    //容器组名称
    @ApiModelProperty(value = "容器组名称")
    private String podName;

    //命名空间
    @ApiModelProperty(value = "命名空间")
    private String namespace;

    //所在节点
    @ApiModelProperty(value = "所在节点")
    private String nodeName;

    //podIp
    @ApiModelProperty(value = "podIp")
    private String podIP;

    //状态
    @ApiModelProperty(value = "状态")
    private String status;

    //容器数量
    @ApiModelProperty(value = "容器数量")
    private int containerNum;

    //容器列表
    @ApiModelProperty(value = "容器列表")
    private List<ContainerModel> containerModels;

    //重启次数
    @ApiModelProperty(value = "重启次数")
    private int restartTimes;

    //创建时长
    @ApiModelProperty(value = "创建时长")
    private String age;

    //CPU使用量单位m
    @ApiModelProperty(value = "CPU使用量单位m")
    private String cpuUse;

    //内存使用量单位mi
    @ApiModelProperty(value = "内存使用量单位mi")
    private String memUse;

    //CPU使用量单位n
    @ApiModelProperty(value = "CPU使用量单位n")
    private long cpuUseByN;

    //内存使用量单位ki
    @ApiModelProperty(value = "内存使用量单位ki")
    private long memUseByKi;

    //cpu最小要求
    @ApiModelProperty(value = "cpu最小要求")
    private long podReqCpuByN = 0L;

    //内存最小要求
    @ApiModelProperty(value = "内存最小要求")
    private long podReqMemByKi;

    //cpu最大限制
    @ApiModelProperty(value = "cpu最大限制")
    private long podLimitCpuByN;
    
    //内存最大限制
    @ApiModelProperty(value = "内存最大限制")
    private long podLimitMemByKi;

    //pod隶属的工作负载
    @ApiModelProperty(value = "pod隶属的工作负载")
    private WorkLoadModel workLoadModel;

    //pod的labels
    @ApiModelProperty(value = "pod的labels")
    private Map<String,String> podLabelMap;

    //pod创建时间
    @ApiModelProperty(value = "pod创建时间")
    private String podpodLabelMap;

    /**
     * get
     *
     * @return PodName
     */
    public String getPodName() {
        return podName;
    }

    /**
     * set
     *
     * @param podName podName
     */
    public void setPodName(String podName) {
        this.podName = podName;
    }

    /**
     * get
     *
     * @return Namespace
     */
    public String getNamespace() {
        return namespace;
    }

    /**
     * set
     *
     * @param namespace namespace
     */
    public void setNamespace(String namespace) {
        this.namespace = namespace;
    }

    /**
     * get
     *
     * @return NodeName
     */
    public String getNodeName() {
        return nodeName;
    }

    /**
     * set
     *
     * @param nodeName nodeName
     */
    public void setNodeName(String nodeName) {
        this.nodeName = nodeName;
    }

    /**
     * get
     *
     * @return PodIP
     */
    public String getPodIP() {
        return podIP;
    }

    /**
     * set
     *
     * @param podIP podIP
     */
    public void setPodIP(String podIP) {
        this.podIP = podIP;
    }

    /**
     * get
     *
     * @return Status
     */
    public String getStatus() {
        return status;
    }

    /**
     * set
     *
     * @param status status
     */
    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * get
     *
     * @return ContainerNum
     */
    public int getContainerNum() {
        return containerNum;
    }

    /**
     * set
     *
     * @param containerNum containerNum
     */
    public void setContainerNum(int containerNum) {
        this.containerNum = containerNum;
    }

    /**
     * get
     *
     * @return ContainerModels
     */
    public List<ContainerModel> getContainerModels() {
        return containerModels;
    }

    /**
     * set
     *
     * @param containerModels containerModels
     */
    public void setContainerModels(List<ContainerModel> containerModels) {
        this.containerModels = containerModels;
    }

    /**
     * get
     *
     * @return RestartTimes
     */
    public int getRestartTimes() {
        return restartTimes;
    }

    /**
     * set
     *
     * @param restartTimes restartTimes
     */
    public void setRestartTimes(int restartTimes) {
        this.restartTimes = restartTimes;
    }

    /**
     * get
     *
     * @return Age
     */
    public String getAge() {
        return age;
    }

    /**
     * set
     *
     * @param age age
     */
    public void setAge(String age) {
        this.age = age;
    }

    /**
     * get
     *
     * @return CpuUse
     */
    public String getCpuUse() {
        return cpuUse;
    }

    /**
     * set
     *
     * @param cpuUse cpuUse
     */
    public void setCpuUse(String cpuUse) {
        this.cpuUse = cpuUse;
    }

    /**
     * get
     *
     * @return MemUse
     */
    public String getMemUse() {
        return memUse;
    }

    /**
     * set
     *
     * @param memUse memUse
     */
    public void setMemUse(String memUse) {
        this.memUse = memUse;
    }

    /**
     * get
     *
     * @return CpuUseByN
     */
    public long getCpuUseByN() {
        return cpuUseByN;
    }

    /**
     * set
     *
     * @param cpuUseByN cpuUseByN
     */
    public void setCpuUseByN(long cpuUseByN) {
        this.cpuUseByN = cpuUseByN;
    }

    /**
     * get
     *
     * @return MemUseByKi
     */
    public long getMemUseByKi() {
        return memUseByKi;
    }

    /**
     * set
     *
     * @param memUseByKi memUseByKi
     */
    public void setMemUseByKi(long memUseByKi) {
        this.memUseByKi = memUseByKi;
    }

    /**
     * get
     *
     * @return PodReqCpuByN
     */
    public long getPodReqCpuByN() {
        return podReqCpuByN;
    }

    /**
     * set
     *
     * @param podReqCpuByN podReqCpuByN
     */
    public void setPodReqCpuByN(long podReqCpuByN) {
        this.podReqCpuByN = podReqCpuByN;
    }

    /**
     * get
     *
     * @return PodReqMemByKi
     */
    public long getPodReqMemByKi() {
        return podReqMemByKi;
    }

    /**
     * set
     *
     * @param podReqMemByKi podReqMemByKi
     */
    public void setPodReqMemByKi(long podReqMemByKi) {
        this.podReqMemByKi = podReqMemByKi;
    }

    /**
     * get
     *
     * @return PodLimitCpuByN
     */
    public long getPodLimitCpuByN() {
        return podLimitCpuByN;
    }

    /**
     * set
     *
     * @param podLimitCpuByN podLimitCpuByN
     */
    public void setPodLimitCpuByN(long podLimitCpuByN) {
        this.podLimitCpuByN = podLimitCpuByN;
    }

    /**
     * get
     *
     * @return PodLimitMemByKi
     */
    public long getPodLimitMemByKi() {
        return podLimitMemByKi;
    }

    /**
     * set
     *
     * @param podLimitMemByKi podLimitMemByKi
     */
    public void setPodLimitMemByKi(long podLimitMemByKi) {
        this.podLimitMemByKi = podLimitMemByKi;
    }

    /**
     * get
     *
     * @return WorkLoadModel
     */
    public WorkLoadModel getWorkLoadModel() {
        return workLoadModel;
    }

    /**
     * set
     *
     * @param workLoadModel workLoadModel
     */
    public void setWorkLoadModel(WorkLoadModel workLoadModel) {
        this.workLoadModel = workLoadModel;
    }

    /**
     * get
     *
     * @return PodLabelMap
     */
    public Map<String, String> getPodLabelMap() {
        return podLabelMap;
    }

    /**
     * set
     *
     * @param podLabelMap podLabelMap
     */
    public void setPodLabelMap(Map<String, String> podLabelMap) {
        this.podLabelMap = podLabelMap;
    }

    /**
     * get
     *
     * @return PodpodLabelMap
     */
    public String getPodpodLabelMap() {
        return podpodLabelMap;
    }

    /**
     * set
     *
     * @param podpodLabelMap podpodLabelMap
     */
    public void setPodpodLabelMap(String podpodLabelMap) {
        this.podpodLabelMap = podpodLabelMap;
    }
}
